package occho.data;

import java.sql.SQLException;
import java.util.List;
import occho.model.Asignatura;
import occho.model.Usuario;

/**
 *
 * @author Jorge
 */
public interface AsignaturaDAO {
    
    /**
     * Inserta una asignatura en la base de datos
     * @param asig
     * @param usuario 
     * @return true si la asignatura fue insertada
     * @throws SQLException  
     */
    public boolean insertarAsignatura(Asignatura asig, Usuario usuario) throws SQLException;
    
    /**
     * Borra una asignatura de la base de datos
     * @param asig
     * @return true si la asignatura fue borrada
     * @throws SQLException  
     */
    public boolean borrarAsignatura(Asignatura asig) throws SQLException;
    
    /**
     * Selecciona una asignatura de la base de datos
     * @param asig
     * @return la asignatura seleccionada
     * @throws SQLException
     * @throws ClassNotFoundException  
     */
    public Asignatura seleccionarAsignatura(Asignatura asig) throws SQLException, ClassNotFoundException;
    
    /**
     * Selecciona todas las asignaturas de la base de datos
     * @return una lista de las asignaturas disponibles
     * @throws SQLException
     * @throws ClassNotFoundException  
     */
    public List<Asignatura> seleccionarAsignaturas() throws SQLException, ClassNotFoundException;
    
    /**
     * Selecciona todas las asignaturas pertenecientes a un usuario
     * @param usuario
     * @return la lista de asignaturas del usuario especificado
     * @throws SQLException 
     * @throws ClassNotFoundException  
     */
    public List<Asignatura> seleccionarAsignaturas(Usuario usuario) throws SQLException, ClassNotFoundException;
    
    
    
}
